import java.util.Random;

public class Homework1 {
    //给定一个很长的数组 (长度 1000w), 通过随机数的方式生成 1-100 之间的整数.
    //实现代码, 能够创建两个线程, 对这个数组的所有元素求和.
    //其中线程1 计算偶数下标元素的和, 线程2 计算奇数下标元素的和.
    //最终再汇总两个和, 进行相加
    //记录程序的执行时间.
    private static long sum = 0;
    private static int usedsize = 10000000;

    public static void main(String[] args) throws InterruptedException {
        //开始时间
        long time1 = System.currentTimeMillis();
        //随机生成数据
        Random random = new Random();
        int[] arr = new int[usedsize];
        for (int i = 0; i <usedsize ; i++) {
            arr[i] = random.nextInt(101);//实现随机取1~100
        }

        //线程1
        Thread t1 = new Thread(()->{
           //计算偶数下标元素的和
            for (int i = 0; i < usedsize; i+=2) {
                sum += arr[i];
            }
        });

        Thread t2 = new Thread(()->{
           //计算计数下标元素的和
            for (int i = 1; i < usedsize; i+=2) {
                sum += arr[i];
            }
        });

        t1.start();
        t1.join();
        t2.start();
        t2.join();

        //结束时间
        long time2 = System.currentTimeMillis();
        long time = time2-time1;
        System.out.println("花费时间: "+time);
        System.out.println("数组的总和: "+sum);
    }
}
